[INFO] cloning repository https://github.com/yrlihuan/omnish
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yrlihuan/omnish" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyrlihuan%2Fomnish", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyrlihuan%2Fomnish'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8382017ec17495a4b47415e671264b39c57278a3
[INFO] testing yrlihuan/omnish against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyrlihuan%2Fomnish" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/yrlihuan/omnish
[INFO] finished tweaking git repo https://github.com/yrlihuan/omnish
[INFO] tweaked toml for git repo https://github.com/yrlihuan/omnish written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/yrlihuan/omnish on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/yrlihuan/omnish already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded grep-matcher v0.1.8
[INFO] [stderr]   Downloaded vt100 v0.15.2
[INFO] [stderr]   Downloaded grep-searcher v0.1.16
[INFO] [stderr]   Downloaded grep v0.4.1
[INFO] [stderr]   Downloaded grep-cli v0.1.12
[INFO] [stderr]   Downloaded croner v2.2.0
[INFO] [stderr]   Downloaded grep-printer v0.3.1
[INFO] [stderr]   Downloaded landlock v0.4.4
[INFO] [stderr]   Downloaded grep-regex v0.1.14
[INFO] [stderr]   Downloaded tar v0.4.45
[INFO] [stderr]   Downloaded encoding_rs_io v0.1.7
[INFO] [stderr]   Downloaded vte v0.11.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9423bf9173d848ffb24d182c283ab4b36e9f79ab2e7e9284fd427d823f23b731
[INFO] running `Command { std: "docker" "start" "-a" "9423bf9173d848ffb24d182c283ab4b36e9f79ab2e7e9284fd427d823f23b731", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9423bf9173d848ffb24d182c283ab4b36e9f79ab2e7e9284fd427d823f23b731", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9423bf9173d848ffb24d182c283ab4b36e9f79ab2e7e9284fd427d823f23b731", kill_on_drop: false }`
[INFO] [stdout] 9423bf9173d848ffb24d182c283ab4b36e9f79ab2e7e9284fd427d823f23b731
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 979f156e8d4860e18bf852d4eb0bc9b6dc7d4832edbacf33e2c5664ea5c3ef7a
[INFO] running `Command { std: "docker" "start" "-a" "979f156e8d4860e18bf852d4eb0bc9b6dc7d4832edbacf33e2c5664ea5c3ef7a", kill_on_drop: false }`
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling grep-matcher v0.1.8
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling omnish-common v0.8.5 (/opt/rustwide/workdir/crates/omnish-common)
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling encoding_rs_io v0.1.7
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling omnish-store v0.8.5 (/opt/rustwide/workdir/crates/omnish-store)
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling tar v0.4.45
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling omnish-protocol v0.8.5 (/opt/rustwide/workdir/crates/omnish-protocol)
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling pem v3.0.6
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling landlock v0.4.4
[INFO] [stderr]    Compiling yasna v0.5.2
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling tokio-cron-scheduler v0.13.0
[INFO] [stderr]    Compiling croner v2.2.0
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling pulldown-cmark v0.13.1
[INFO] [stderr]    Compiling omnish-context v0.8.5 (/opt/rustwide/workdir/crates/omnish-context)
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling omnish-pty v0.8.5 (/opt/rustwide/workdir/crates/omnish-pty)
[INFO] [stderr]    Compiling omnish-tracker v0.8.5 (/opt/rustwide/workdir/crates/omnish-tracker)
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling grep-searcher v0.1.16
[INFO] [stderr]    Compiling grep-regex v0.1.14
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling grep-printer v0.3.1
[INFO] [stderr]    Compiling rcgen v0.13.2
[INFO] [stderr]    Compiling grep-cli v0.1.12
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling grep v0.4.1
[INFO] [stderr]    Compiling tracing-appender v0.2.4
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling omnish-transport v0.8.5 (/opt/rustwide/workdir/crates/omnish-transport)
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling omnish-llm v0.8.5 (/opt/rustwide/workdir/crates/omnish-llm)
[INFO] [stderr]    Compiling omnish-plugin v0.8.5 (/opt/rustwide/workdir/crates/omnish-plugin)
[INFO] [stderr]    Compiling omnish-daemon v0.8.5 (/opt/rustwide/workdir/crates/omnish-daemon)
[INFO] [stderr]    Compiling omnish-client v0.8.5 (/opt/rustwide/workdir/crates/omnish-client)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 05s
[INFO] running `Command { std: "docker" "inspect" "979f156e8d4860e18bf852d4eb0bc9b6dc7d4832edbacf33e2c5664ea5c3ef7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "979f156e8d4860e18bf852d4eb0bc9b6dc7d4832edbacf33e2c5664ea5c3ef7a", kill_on_drop: false }`
[INFO] [stdout] 979f156e8d4860e18bf852d4eb0bc9b6dc7d4832edbacf33e2c5664ea5c3ef7a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6e18bd458bb34f110a8c174f56449b5bb9a3993127e3b50ff77ba4abd6ca548a
[INFO] running `Command { std: "docker" "start" "-a" "6e18bd458bb34f110a8c174f56449b5bb9a3993127e3b50ff77ba4abd6ca548a", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling vte_generate_state_changes v0.1.2
[INFO] [stderr]    Compiling regex-lite v0.1.9
[INFO] [stderr]    Compiling omnish-tracker v0.8.5 (/opt/rustwide/workdir/crates/omnish-tracker)
[INFO] [stderr]    Compiling omnish-pty v0.8.5 (/opt/rustwide/workdir/crates/omnish-pty)
[INFO] [stderr]    Compiling omnish-context v0.8.5 (/opt/rustwide/workdir/crates/omnish-context)
[INFO] [stderr]    Compiling omnish-protocol v0.8.5 (/opt/rustwide/workdir/crates/omnish-protocol)
[INFO] [stderr]    Compiling vte v0.11.1
[INFO] [stderr]    Compiling vt100 v0.15.2
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling tar v0.4.45
[INFO] [stderr]    Compiling omnish-store v0.8.5 (/opt/rustwide/workdir/crates/omnish-store)
[INFO] [stderr]    Compiling omnish-common v0.8.5 (/opt/rustwide/workdir/crates/omnish-common)
[INFO] [stderr]    Compiling omnish-llm v0.8.5 (/opt/rustwide/workdir/crates/omnish-llm)
[INFO] [stderr]    Compiling omnish-transport v0.8.5 (/opt/rustwide/workdir/crates/omnish-transport)
[INFO] [stderr]    Compiling omnish-plugin v0.8.5 (/opt/rustwide/workdir/crates/omnish-plugin)
[INFO] [stderr]    Compiling omnish-daemon v0.8.5 (/opt/rustwide/workdir/crates/omnish-daemon)
[INFO] [stderr]    Compiling omnish-client v0.8.5 (/opt/rustwide/workdir/crates/omnish-client)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 51.37s
[INFO] running `Command { std: "docker" "inspect" "6e18bd458bb34f110a8c174f56449b5bb9a3993127e3b50ff77ba4abd6ca548a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6e18bd458bb34f110a8c174f56449b5bb9a3993127e3b50ff77ba4abd6ca548a", kill_on_drop: false }`
[INFO] [stdout] 6e18bd458bb34f110a8c174f56449b5bb9a3993127e3b50ff77ba4abd6ca548a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] dfa7d3b8a8e96b18759b039dc72b6001e1d877536a238792ec2715649ded5a81
[INFO] running `Command { std: "docker" "start" "-a" "dfa7d3b8a8e96b18759b039dc72b6001e1d877536a238792ec2715649ded5a81", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.65s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/omnish-1dd26d305df4db51)
[INFO] [stdout] 
[INFO] [stdout] running 420 tests
[INFO] [stdout] test command::tests::test_debug_events_command ... ok
[INFO] [stdout] test command::tests::test_debug_client_dispatches_to_daemon ... ok
[INFO] [stdout] test command::tests::test_context_with_redirect ... ok
[INFO] [stdout] test command::tests::test_context_with_limit_and_redirect ... ok
[INFO] [stdout] test command::tests::test_debug_events_default_count ... ok
[INFO] [stdout] test command::tests::test_context_dispatches_to_daemon ... ok
[INFO] [stdout] test command::tests::test_debug_session_dispatches_to_daemon ... ok
[INFO] [stdout] test command::tests::test_completable_commands_returns_all_entries ... ok
[INFO] [stdout] test command::tests::test_help_command ... ok
[INFO] [stdout] test command::tests::test_sessions_dispatches_to_daemon ... ok
[INFO] [stdout] test command::tests::test_tasks_dispatches_to_daemon ... ok
[INFO] [stdout] test command::tests::test_template_auto_complete_dispatches_to_daemon ... ok
[INFO] [stdout] test command::tests::test_template_chat_dispatches_to_daemon ... ok
[INFO] [stdout] test command::tests::test_non_command_is_llm_query ... ok
[INFO] [stdout] test command::tests::test_tasks_disable_forwards_args ... ok
[INFO] [stdout] test command::tests::test_thread_list ... ok
[INFO] [stdout] test command::tests::test_unknown_debug_subcommand_shows_usage ... ok
[INFO] [stdout] test command::tests::test_parse_redirect ... ok
[INFO] [stdout] test command::tests::test_unknown_slash_command_falls_through ... ok
[INFO] [stdout] test command::tests::test_template_no_args_dispatches_to_daemon ... ok
[INFO] [stdout] test completion::tests::test_clear_clears_active_requests ... ok
[INFO] [stdout] test completion::tests::test_completion_discarded_when_input_not_prefix ... ok
[INFO] [stdout] test completion::tests::test_debounce_not_ready_immediately ... ok
[INFO] [stdout] test completion::tests::test_best_suggestion_selected ... ok
[INFO] [stdout] test completion::tests::test_clear_removes_ghost ... ok
[INFO] [stdout] test completion::tests::test_completion_subset_of_input_discarded ... ok
[INFO] [stdout] test completion::tests::test_accept_returns_and_clears ... ok
[INFO] [stdout] test completion::tests::test_accept_after_typing_returns_suffix_only ... ok
[INFO] [stdout] test completion::tests::test_completion_suffix_only_discarded ... ok
[INFO] [stdout] test completion::tests::test_debounce_ready_empty_input ... ok
[INFO] [stdout] test completion::tests::test_completion_variant_with_shared_prefix_discarded ... ok
[INFO] [stdout] test completion::tests::test_concurrent_request_limit ... ok
[INFO] [stdout] test completion::tests::test_concurrent_requests_with_different_inputs ... ok
[INFO] [stdout] test completion::tests::test_debounce_ready_short_input ... ok
[INFO] [stdout] test completion::tests::test_debounce_ready_after_timeout ... ok
[INFO] [stdout] test completion::tests::test_dismiss_clears_ghost ... ok
[INFO] [stdout] test completion::tests::test_dismiss_cleared_on_prompt ... ok
[INFO] [stdout] test completion::tests::test_dismiss_suppresses_same_input_request ... ok
[INFO] [stdout] test completion::tests::test_debug_state_shows_concurrent_info ... ok
[INFO] [stdout] test completion::tests::test_dismiss_without_ghost_returns_false ... ok
[INFO] [stdout] test completion::tests::test_ghost_calculation_when_suffix_returned_and_input_changes ... ok
[INFO] [stdout] test completion::tests::test_ghost_not_expired_without_ghost ... ok
[INFO] [stdout] test completion::tests::test_dismiss_allows_request_after_input_change ... ok
[INFO] [stdout] test completion::tests::test_issue95_prefer_second_when_first_is_short_prefix ... ok
[INFO] [stdout] test completion::tests::test_no_duplicate_request ... ok
[INFO] [stdout] test completion::tests::test_issue95_no_preference_when_first_long ... ok
[INFO] [stdout] test completion::tests::test_no_duplicate_requests_after_daemon_restart ... ok
[INFO] [stdout] test completion::tests::test_on_input_changed_returns_false_when_no_ghost ... ok
[INFO] [stdout] test completion::tests::test_on_input_changed_returns_true_when_ghost_cleared ... ok
[INFO] [stdout] test completion::tests::test_ghost_calculation_when_input_changes_during_request ... ok
[INFO] [stdout] test completion::tests::test_dismiss_blocks_pending_responses ... ok
[INFO] [stdout] test completion::tests::test_ghost_expired_after_timeout ... ok
[INFO] [stdout] test completion::tests::test_ghost_survives_prefix_typing ... ok
[INFO] [stdout] test completion::tests::test_ghost_cleared_on_divergent_extra_chars ... ok
[INFO] [stdout] test completion::tests::test_response_exact_match_no_ghost ... ok
[INFO] [stdout] test completion::tests::test_response_irrelevance_filtering ... ok
[INFO] [stdout] test completion::tests::test_response_relevance_filtering ... ok
[INFO] [stdout] test completion::tests::test_stale_response_discarded_with_concurrent ... ok
[INFO] [stdout] test completion::tests::test_timed_out_request_cleanup ... ok
[INFO] [stdout] test completion::tests::test_response_strips_input_prefix ... ok
[INFO] [stdout] test display::tests::collapse_newlines_multiline_command ... ok
[INFO] [stdout] test completion::tests::test_valid_response_sets_ghost ... ok
[INFO] [stdout] test display::tests::test_prompt_renders_correctly ... ok
[INFO] [stdout] test display::tests::test_render_error_special_chars ... ok
[INFO] [stdout] test display::tests::test_dismiss_with_column_restore ... ok
[INFO] [stdout] test display::tests::test_dismiss_clears_after_scroll ... ok
[INFO] [stdout] test display::tests::test_error_message ... ok
[INFO] [stdout] test display::tests::test_input_echo_shows_text ... ok
[INFO] [stdout] test display::tests::test_dismiss_restores_cursor ... ok
[INFO] [stdout] test display::tests::test_render_ghost_text_empty ... ok
[INFO] [stdout] test display::tests::test_input_echo_with_ghost ... ok
[INFO] [stdout] test display::tests::test_ghost_cleared_on_divergent_input ... ok
[INFO] [stdout] test display::tests::test_dismiss_preserves_prompt_line ... ok
[INFO] [stdout] test display::tests::test_render_input_echo_empty ... ok
[INFO] [stdout] test display::tests::test_render_prompt_narrow_terminal ... ok
[INFO] [stdout] test display::tests::test_render_response_empty ... ok
[INFO] [stdout] test display::tests::test_full_interaction_flow ... ok
[INFO] [stdout] test display::tests::test_render_response_single_line ... ok
[INFO] [stdout] test display::tests::test_repeated_dismiss_no_content_drift ... ok
[INFO] [stdout] test display::tests::test_response_crlf_conversion ... ok
[INFO] [stdout] test display::tests::test_separator ... ok
[INFO] [stdout] test display::tests::truncate_cols_ascii_fits ... ok
[INFO] [stdout] test display::tests::truncate_cols_ascii_truncated ... ok
[INFO] [stdout] test display::tests::test_render_ghost_text ... ok
[INFO] [stdout] test display::tests::truncate_cols_cjk_fits ... ok
[INFO] [stdout] test display::tests::truncate_cols_cjk_truncated ... ok
[INFO] [stdout] test display::tests::truncate_cols_empty ... ok
[INFO] [stdout] test display::tests::truncate_cols_mixed ... ok
[INFO] [stdout] test ghost_complete::tests::test_builtin_provider_empty_input ... ok
[INFO] [stdout] test ghost_complete::tests::test_builtin_provider_exact_match_no_ghost ... ok
[INFO] [stdout] test ghost_complete::tests::test_builtin_provider_no_match ... ok
[INFO] [stdout] test ghost_complete::tests::test_builtin_provider_prefix_match ... ok
[INFO] [stdout] test ghost_complete::tests::test_builtin_provider_subcommand_match ... ok
[INFO] [stdout] test completion::tests::test_concurrent_requests_allowed ... ok
[INFO] [stdout] test ghost_complete::tests::test_completer_accept_returns_suffix ... ok
[INFO] [stdout] test ghost_complete::tests::test_completer_clear ... ok
[INFO] [stdout] test ghost_complete::tests::test_completer_first_provider_wins ... ok
[INFO] [stdout] test ghost_complete::tests::test_completer_update_no_match_returns_none ... ok
[INFO] [stdout] test ghost_complete::tests::test_completer_update_returns_ghost_suffix ... ok
[INFO] [stdout] test interceptor::tests::test_arrow_keys_forwarded_as_single_write ... ok
[INFO] [stdout] test interceptor::tests::test_ascii_not_delayed_by_utf8_check ... ok
[INFO] [stdout] test interceptor::tests::test_backspace_when_not_buffering ... ok
[INFO] [stdout] test interceptor::tests::test_chat_detected ... ok
[INFO] [stdout] test interceptor::tests::test_chat_with_query ... ok
[INFO] [stdout] test interceptor::tests::test_backspace_during_prefix_buffering ... ok
[INFO] [stdout] test interceptor::tests::test_esc_cancels_prefix_buffering ... ok
[INFO] [stdout] test interceptor::tests::test_cjk_char_buffered_before_flush ... ok
[INFO] [stdout] test interceptor::tests::test_expire_prefix_no_effect_when_not_in_chat ... ok
[INFO] [stdout] test interceptor::tests::test_bare_esc_forwarded_when_not_buffering ... ok
[INFO] [stdout] test interceptor::tests::test_finish_batch_no_op_when_idle ... ok
[INFO] [stdout] test interceptor::tests::test_double_prefix_resume_single_char ... ok
[INFO] [stdout] test interceptor::tests::test_guard_forward_updates_timestamp ... ok
[INFO] [stdout] test interceptor::tests::test_incomplete_utf8_tail ... ok
[INFO] [stdout] test interceptor::tests::test_double_prefix_resume_two_char ... ok
[INFO] [stdout] test interceptor::tests::test_integration_guard_blocks_during_typing ... ok
[INFO] [stdout] test interceptor::tests::test_inject_byte_and_current_buffer ... ok
[INFO] [stdout] test interceptor::tests::test_integration_prefix_then_backspace_dismisses ... ok
[INFO] [stdout] test interceptor::tests::test_integration_double_prefix_resumes_chat ... ok
[INFO] [stdout] test interceptor::tests::test_guard_allows_prefix_after_gap ... ok
[INFO] [stdout] test interceptor::tests::test_integration_normal_input_not_intercepted ... ok
[INFO] [stdout] test interceptor::tests::test_integration_multiple_sessions ... ok
[INFO] [stdout] test interceptor::tests::test_expire_prefix_no_effect_with_extra_content ... ok
[INFO] [stdout] test interceptor::tests::test_guard_blocks_prefix_mid_input ... ok
[INFO] [stdout] test interceptor::tests::test_integration_prefix_then_content_then_enter ... ok
[INFO] [stdout] test interceptor::tests::test_integration_prefix_then_enter_new_chat ... ok
[INFO] [stdout] test interceptor::tests::test_integration_prefix_then_esc_cancels ... ok
[INFO] [stdout] test interceptor::tests::test_integration_single_prefix_timeout_enters_new_chat ... ok
[INFO] [stdout] test interceptor::tests::test_integration_suppressed_then_unsuppressed ... ok
[INFO] [stdout] test interceptor::tests::test_integration_timeout_no_effect_after_content ... ok
[INFO] [stdout] test interceptor::tests::test_integration_two_char_prefix_resume ... ok
[INFO] [stdout] test interceptor::tests::test_note_output_resets_chat_state ... ok
[INFO] [stdout] test interceptor::tests::test_passthrough_normal_input ... ok
[INFO] [stdout] test interceptor::tests::test_suppressed_discards_partial_buffer ... ok
[INFO] [stdout] test interceptor::tests::test_suppressed_then_resumed ... ok
[INFO] [stdout] test interceptor::tests::test_suppressed_forwards_everything ... ok
[INFO] [stdout] test interceptor::tests::test_suppressed_mode_arrow_keys_forwarded_as_complete_sequence ... ok
[INFO] [stdout] test interceptor::tests::test_tab_not_in_chat_forwards ... ok
[INFO] [stdout] test interceptor::tests::test_tab_during_prefix_buffering ... ok
[INFO] [stdout] test interceptor::tests::test_prefix_then_enter_new_chat ... ok
[INFO] [stdout] test interceptor::tests::test_partial_prefix_then_mismatch ... ok
[INFO] [stdout] test interceptor::tests::test_ui_backspace_to_empty_dismisses ... ok
[INFO] [stdout] test interceptor::tests::test_ui_esc_non_bracket_cancel ... ok
[INFO] [stdout] test interceptor::tests::test_ui_arrow_keys_no_redraws ... ok
[INFO] [stdout] test interceptor::tests::test_ui_multiple_esc_sequences ... ok
[INFO] [stdout] test interceptor::tests::test_integration_two_char_prefix_timeout ... ok
[INFO] [stdout] test interceptor::tests::test_ui_paste_no_spurious_redraws ... ok
[INFO] [stdout] test interceptor::tests::test_ui_paste_then_enter ... ok
[INFO] [stdout] test interceptor::tests::test_time_gap_guard_no_prior_input ... ok
[INFO] [stdout] test interceptor::tests::test_ui_paste_with_embedded_ansi ... ok
[INFO] [stdout] test interceptor::tests::test_time_gap_guard_recent_input_blocks ... ok
[INFO] [stdout] test interceptor::tests::test_tab_in_chat_mode ... ok
[INFO] [stdout] test interceptor::tests::test_ui_prefix_mismatch_then_retry ... ok
[INFO] [stdout] test interceptor::tests::test_ui_type_and_esc_cancel ... ok
[INFO] [stdout] test interceptor::tests::test_ui_type_and_submit ... ok
[INFO] [stdout] test interceptor::tests::test_utf8_char_len_helper ... ok
[INFO] [stdout] test markdown::tests::test_italic ... ok
[INFO] [stdout] test markdown::tests::test_code_block ... ok
[INFO] [stdout] test markdown::tests::test_crlf_line_endings ... ok
[INFO] [stdout] test markdown::tests::test_empty_input ... ok
[INFO] [stdout] test markdown::tests::test_heading ... ok
[INFO] [stdout] test markdown::tests::test_plain_text ... ok
[INFO] [stdout] test markdown::tests::test_blockquote ... ok
[INFO] [stdout] test markdown::tests::test_bold ... ok
[INFO] [stdout] test markdown::tests::test_mixed_content ... ok
[INFO] [stdout] test markdown::tests::test_unordered_list ... ok
[INFO] [stdout] test markdown::tests::test_ordered_list ... ok
[INFO] [stdout] test markdown::tests::test_inline_code ... ok
[INFO] [stdout] test probe::tests::test_child_process_probe_key ... ok
[INFO] [stdout] test markdown::tests::test_horizontal_rule ... ok
[INFO] [stdout] test markdown::tests::test_link ... ok
[INFO] [stdout] test probe::tests::test_child_process_probe_returns_string_or_empty ... ok
[INFO] [stdout] test probe::tests::test_collect_all_skips_none ... ok
[INFO] [stdout] test markdown::tests::test_multiple_paragraphs ... ok
[INFO] [stdout] test probe::tests::test_pid_probe ... ok
[INFO] [stdout] test probe::tests::test_process_basename_empty ... ok
[INFO] [stdout] test probe::tests::test_process_basename_full_path ... ok
[INFO] [stdout] test probe::tests::test_process_basename_simple_name ... ok
[INFO] [stdout] test completion::tests::test_stale_response_discarded ... ok
[INFO] [stdout] test probe::tests::test_process_basename_single_slash ... ok
[INFO] [stdout] test probe::tests::test_shell_cwd_probe_returns_none_for_bad_pid ... ok
[INFO] [stdout] test probe::tests::test_shell_cwd_probe_returns_path_for_self ... ok
[INFO] [stdout] test shell_hook::tests::test_hook_content_includes_cwd ... ok
[INFO] [stdout] test probe::tests::test_cwd_probe ... ok
[INFO] [stdout] test shell_hook::tests::test_hook_content_has_osc133_sequences ... ok
[INFO] [stdout] test shell_hook::tests::test_non_bash_returns_none ... ok
[INFO] [stdout] test shell_input::tests::test_backspace ... ok
[INFO] [stdout] test shell_input::tests::test_basic_typing ... ok
[INFO] [stdout] test shell_input::tests::test_ctrl_r_then_enter_clears_pending_on_prompt ... ok
[INFO] [stdout] test shell_input::tests::test_ctrl_c_clears ... ok
[INFO] [stdout] test shell_input::tests::test_ctrl_u_clears ... ok
[INFO] [stdout] test shell_input::tests::test_cursor_at_end_default_when_no_point ... ok
[INFO] [stdout] test shell_input::tests::test_cursor_at_end_reset_on_prompt ... ok
[INFO] [stdout] test shell_input::tests::test_cursor_at_end_when_point_at_end ... ok
[INFO] [stdout] test shell_input::tests::test_enter_clears ... ok
[INFO] [stdout] test shell_input::tests::test_cursor_not_at_end_when_point_mid_line ... ok
[INFO] [stdout] test shell_input::tests::test_esc_sequence_then_typing ... ok
[INFO] [stdout] test shell_input::tests::test_esc_sequence_skipped ... ok
[INFO] [stdout] test shell_input::tests::test_ignores_csi_13337_after_enter ... ok
[INFO] [stdout] test shell_input::tests::test_ignores_input_after_enter ... ok
[INFO] [stdout] test shell_input::tests::test_pending_report_suppresses_change ... ok
[INFO] [stdout] test shell_input::tests::test_prompt_cycle_with_enter ... ok
[INFO] [stdout] test shell_input::tests::test_inject ... ok
[INFO] [stdout] test shell_hook::tests::test_bash_returns_rcfile_path ... ok
[INFO] [stdout] test shell_input::tests::test_pending_rl_report_auto_clears_after_timeout ... ok
[INFO] [stdout] test shell_input::tests::test_set_readline_ignored_when_not_at_prompt ... ok
[INFO] [stdout] test shell_input::tests::test_tab_not_appended ... ok
[INFO] [stdout] test shell_input::tests::test_take_change ... ok
[INFO] [stdout] test shell_input::tests::test_on_prompt_bumps_even_when_empty ... ok
[INFO] [stdout] test shell_input::tests::test_set_readline_updates_input ... ok
[INFO] [stdout] test tests::test_alt_screen_embedded_in_output ... ok
[INFO] [stdout] test tests::test_alt_screen_detect_1049h ... ok
[INFO] [stdout] test tests::test_alt_screen_detect_47h ... ok
[INFO] [stdout] test shell_input::tests::test_set_readline_same_content_no_bump ... ok
[INFO] [stdout] test tests::test_alt_screen_no_duplicate_events ... ok
[INFO] [stdout] test tests::test_alt_screen_split_across_chunks ... ok
[INFO] [stdout] test shell_input::tests::test_set_readline_clears_pending ... ok
[INFO] [stdout] test tests::test_col_tracker_cjk_with_colors ... ok
[INFO] [stdout] test tests::test_col_tracker_ascii ... ok
[INFO] [stdout] test tests::test_alt_screen_ignores_unrelated_sequences ... ok
[INFO] [stdout] test tests::test_col_tracker_cjk_wide_chars ... ok
[INFO] [stdout] test tests::test_command_basename_empty ... ok
[INFO] [stdout] test tests::test_command_basename_simple ... ok
[INFO] [stdout] test tests::test_col_tracker_skips_osc ... ok
[INFO] [stdout] test tests::test_command_basename_with_args ... ok
[INFO] [stdout] test tests::test_dsr_complete_response ... ok
[INFO] [stdout] test tests::test_command_basename_with_path ... ok
[INFO] [stdout] test tests::test_dsr_non_csi_esc_aborts ... ok
[INFO] [stdout] test tests::test_dsr_non_r_final_aborts ... ok
[INFO] [stdout] test tests::test_col_tracker_emoji ... ok
[INFO] [stdout] test tests::test_col_tracker_skips_csi ... ok
[INFO] [stdout] test tests::test_dsr_row_1_col_1 ... ok
[INFO] [stdout] test tests::test_history_navigation ... ok
[INFO] [stdout] test tests::test_parse_index_expr_comma_separated ... ok
[INFO] [stdout] test tests::test_parse_index_expr_single ... ok
[INFO] [stdout] test tests::test_parse_index_expr_range ... ok
[INFO] [stdout] test tests::test_parse_index_expr_spaces ... ok
[INFO] [stdout] test tests::test_row_tracker_cup_with_params ... ok
[INFO] [stdout] test tests::test_row_tracker_cursor_up_down ... ok
[INFO] [stdout] test tests::test_row_tracker_cursor_up_saturates ... ok
[INFO] [stdout] test tests::test_should_buffer_io_data ... ok
[INFO] [stdout] test tests::test_parse_index_expr_dedup ... ok
[INFO] [stdout] test tests::test_should_buffer_command_complete ... ok
[INFO] [stdout] test tests::test_row_tracker_cursor_home ... ok
[INFO] [stdout] test tests::test_row_tracker_clear_screen ... ok
[INFO] [stdout] test tests::test_parse_index_expr_invalid ... ok
[INFO] [stdout] test tests::test_should_not_buffer_other_types ... ok
[INFO] [stdout] test tests::test_should_not_buffer_session_start ... ok
[INFO] [stdout] test tests::test_tmux_title_command_name ... ok
[INFO] [stdout] test tests::test_tmux_title_not_in_tmux ... ok
[INFO] [stdout] test throttle::tests::test_cap_boundary ... ok
[INFO] [stdout] test throttle::tests::test_hard_cap_stops_sending ... ok
[INFO] [stdout] test throttle::tests::test_requests_cap_boundary ... ok
[INFO] [stdout] test throttle::tests::test_under_cap_sends ... ok
[INFO] [stdout] test throttle::tests::test_requests_cap_stops_sending ... ok
[INFO] [stdout] test tests::test_tmux_title_in_tmux ... ok
[INFO] [stdout] test throttle::tests::test_reset_returns_to_normal ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_cursor_to ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_empty_layout ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_hide ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_push_regions ... ok
[INFO] [stdout] test tests::test_alt_screen_integration_with_interceptor ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_update_height_increase ... ok
[INFO] [stdout] test tests::test_col_tracker_typical_prompt ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_hide_then_update_reshows ... ok
[INFO] [stdout] test tests::test_row_tracker_newline ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_region_offset ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_update_same_height ... ok
[INFO] [stdout] test interceptor::tests::test_time_gap_guard_stale_input_allows ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_update_height_decrease ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_render_bottom_has_scroll_up_and_insert_line ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_vt100_scroll_view_grows ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_redraw_all_with_content ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_vt100_update_last_region ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_update_with_empty_lines_hides ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_vt100_editor_wrap_exact_boundary ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_render_contains_message ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_render_has_dim_formatting ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_render_no_newline ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_vt100_relative_editor_redraw ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_truncate_exact ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_vt100_editor_wrap_redraw_283 ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_truncate_short ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_truncate_tiny_max ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_render_preserves_cursor ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_render_top_has_insert_line_and_move_down ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_render_truncates_to_max_cols ... ok
[INFO] [stdout] test widgets::inline_notice::tests::vt100_full_screen_cursor_at_short_prompt ... ok
[INFO] [stdout] test widgets::inline_notice::tests::vt100_full_screen_cursor_on_last_row ... ok
[INFO] [stdout] test widgets::inline_notice::tests::vt100_sequential_notices ... ok
[INFO] [stdout] test widgets::inline_notice::tests::vt100_mid_screen_cursor ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_delete_back ... ok
[INFO] [stdout] test widgets::inline_notice::tests::vt100_sequential_top_notices ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_vt100_update_sequence ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_delete_back_at_start_returns_false ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_truncate_long ... ok
[INFO] [stdout] test widgets::inline_notice::tests::vt100_cursor_at_top_row ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_delete_back_merges_lines ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_delete_forward ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_delete_forward_merges_lines ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_insert_paste_block_mid_line ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_delete_paste_block_two_step ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_kill_to_start ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_home_end ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_line_accessor ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_left_at_start ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_left_right ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_left_wraps_to_prev_line ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_right_wraps_to_next_line ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_insert_cjk ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_insert_paste_block_empty_line ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_insert_mid_line ... ok
[INFO] [stdout] test tests::test_buffer_cap_drops_oldest ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_insert_chars ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_up_down ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_up_clamps_col ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_word_left ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_newline ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_new_editor_is_empty ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_render_empty ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_render_single_line ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_word_right ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_set_content ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_render_multiline ... ok
[INFO] [stdout] test widgets::line_status::tests::append_contains_all_text ... ok
[INFO] [stdout] test widgets::line_status::tests::max_lines_unlimited ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_render_with_ghost ... ok
[INFO] [stdout] test widgets::line_status::tests::append_adds_line ... ok
[INFO] [stdout] test widgets::line_status::tests::new_is_not_visible ... ok
[INFO] [stdout] test widgets::line_status::tests::append_multiple_lines ... ok
[INFO] [stdout] test widgets::line_status::tests::multiline_text_counts_correctly ... ok
[INFO] [stdout] test widgets::line_status::tests::short_line_not_truncated ... ok
[INFO] [stdout] test widgets::line_status::tests::clear_when_empty_is_empty_string ... ok
[INFO] [stdout] test widgets::line_status::tests::clear_erases_text_completely ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_insert_paste_block_end_of_line ... ok
[INFO] [stdout] test widgets::line_status::tests::short_response_after_clear_has_no_residue ... ok
[INFO] [stdout] test widgets::line_status::tests::show_makes_visible ... ok
[INFO] [stdout] test widgets::line_status::tests::show_replace_shorter_text_no_residue ... ok
[INFO] [stdout] test widgets::line_status::tests::show_replaces_previous ... ok
[INFO] [stdout] test widgets::line_status::tests::show_resets_content_after_append ... ok
[INFO] [stdout] test widgets::line_status::tests::show_then_clear_then_show_works ... ok
[INFO] [stdout] test widgets::line_status::tests::test_lines_accessor ... ok
[INFO] [stdout] test widgets::line_status::tests::unlimited_cols_no_truncation ... ok
[INFO] [stdout] test widgets::line_status::tests::clear_after_show_restores_invisible ... ok
[INFO] [stdout] test widgets::line_status::tests::max_lines_hides_old_lines ... ok
[INFO] [stdout] test widgets::line_status::tests::vt100_append_and_clear ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_hint_select ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_hint_submenu ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_hint_text_input ... ok
[INFO] [stdout] test widgets::menu::tests::test_lines_below_cursor ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_hint_with_scroll ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_hint_toggle ... ok
[INFO] [stdout] test widgets::menu::tests::test_edit_cursor_col ... ok
[INFO] [stdout] test widgets::menu::tests::test_menu_item_label ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_menu_item_select ... ok
[INFO] [stdout] test widgets::line_status::tests::vt100_max_lines_shows_tail ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_hint_editing ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_full_basic ... ok
[INFO] [stdout] test widgets::menu::tests::test_build_path ... ok
[INFO] [stdout] test widgets::menu::tests::test_empty_menu_returns_done ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_menu_item_text_input ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_menu_item_submenu ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_menu_item_text_input_empty ... ok
[INFO] [stdout] test widgets::menu::tests::test_total_lines ... ok
[INFO] [stdout] test widgets::picker::tests::test_build_shortcut_map ... ok
[INFO] [stdout] test widgets::picker::tests::test_extract_shortcut_basic ... ok
[INFO] [stdout] test widgets::picker::tests::test_build_shortcut_map_first_wins ... ok
[INFO] [stdout] test widgets::picker::tests::test_extract_shortcut_mid_text ... ok
[INFO] [stdout] test widgets::picker::tests::test_extract_shortcut_none ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_cleanup_erases_widget ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_menu_item_toggle_off ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_hint_single ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_menu_item_toggle_on ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_full_with_disabled ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_hint_multi ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_hint_with_scroll_indicator ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_cleanup_scrolled_list ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_disabled_lock ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_disabled_forbidden ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_disabled_selected ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_disabled_key ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_full_with_scroll_shows_viewport ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_full_single_select ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_full_multi_select ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_full_scrolled_down ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_multi_checked ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_multi_unchecked ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_selected ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_compact_rendered_lines ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_normal ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_empty_clear ... ok
[INFO] [stdout] test widgets::picker::tests::test_visible_count_large_list ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_compact_shows_tail ... ok
[INFO] [stdout] test widgets::scroll_view::tests::compact_mode_truncates_long_lines ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_compact_lines ... ok
[INFO] [stdout] test widgets::picker::tests::test_visible_count_small_list ... ok
[INFO] [stdout] test widgets::scroll_view::tests::expanded_mode_preserves_full_long_lines ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_compact_lines_fewer_than_height ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_enter_browse ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_clear_resets_everything ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_scroll_up ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_scroll_in_compact_is_noop ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_expanded_rendered_lines ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_few_lines_compact ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_new_is_compact ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_no_scrollbar_when_fits ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_push_in_expanded_no_output ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_push_line_adds_content ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_exit_browse ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_scrollbar_position ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_scroll_down ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_scrollbar_present_when_content_exceeds_viewport ... ok
[INFO] [stdout] test widgets::scroll_view::tests::vt100_clear_erases_all ... ok
[INFO] [stdout] test widgets::text_view::tests::test_text_view_stores_lines ... ok
[INFO] [stdout] test widgets::scroll_view::tests::vt100_compact_tail_view ... ok
[INFO] [stdout] test widgets::scroll_view::tests::vt100_expand_and_shrink ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_common-6f14939f7dbe17b8)
[INFO] [stdout] test tests::test_dsr_normal_input_passes_through ... ok
[INFO] [stdout] test tests::test_parse_index_expr_mixed ... ok
[INFO] [stdout] test widgets::line_status::tests::truncate_long_line ... ok
[INFO] [stdout] test widgets::text_view::tests::test_text_view_empty ... ok
[INFO] [stdout] test command::tests::test_debug_no_args_shows_usage ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 420 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test auth::tests::test_generate_token_unique ... ok
[INFO] [stdout] test auth::tests::test_generate_token_length ... ok
[INFO] [stdout] test auth::tests::test_load_or_create_token_creates_new ... ok
[INFO] [stdout] test update::tests::test_extract_version ... ok
[INFO] [stdout] test auth::tests::test_load_or_create_token_reuses_existing ... ok
[INFO] [stdout] test update::tests::test_prune_packages ... ok
[INFO] [stdout] test update::tests::test_compare_versions ... ok
[INFO] [stdout] test auth::tests::test_load_token_missing_file ... ok
[INFO] [stdout] test config::tests::test_daemon_config_serializes_to_toml ... ok
[INFO] [stdout] test config_edit::tests::test_preserves_formatting ... ok
[INFO] [stdout] test config_edit::tests::test_set_nested_bool_value ... ok
[INFO] [stdout] test config_edit::tests::test_set_nested_value ... ok
[INFO] [stdout] test config_edit::tests::test_set_string_value ... ok
[INFO] [stdout] test config_edit::tests::test_set_new_key ... ok
[INFO] [stdout] test config_edit::tests::test_set_nested_creates_file_if_missing ... ok
[INFO] [stdout] test config_edit::tests::test_set_deeply_nested_value ... ok
[INFO] [stdout] test config_edit::tests::test_set_bool_value ... ok
[INFO] [stdout] test update::tests::test_normalize_version ... ok
[INFO] [stdout] test config_edit::tests::test_removes_commented_key ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/config_test.rs (/opt/rustwide/target/debug/deps/config_test-0275a23cc122d187)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test test_omnish_dir ... ok
[INFO] [stdout] test test_load_daemon_config_missing_file_returns_default ... ok
[INFO] [stdout] test test_load_client_config_missing_file_returns_default ... ok
[INFO] [stdout] test test_client_config_defaults ... ok
[INFO] [stdout] test test_parse_client_config ... ok
[INFO] [stdout] test test_daemon_config_defaults ... ok
[INFO] [stdout] test test_parse_daemon_config ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_context-3eb1d75e4a32bb67)
[INFO] [stdout] 
[INFO] [stdout] running 51 tests
[INFO] [stdout] test format_utils::tests::test_relative_time_future ... ok
[INFO] [stdout] test format_utils::tests::test_term_name_double_letter ... ok
[INFO] [stdout] test format_utils::tests::test_relative_time_minutes ... ok
[INFO] [stdout] test format_utils::tests::test_relative_time_days ... ok
[INFO] [stdout] test format_utils::tests::test_relative_time_hours ... ok
[INFO] [stdout] test format_utils::tests::test_assign_labels_single_session ... ok
[INFO] [stdout] test format_utils::tests::test_assign_labels_no_hostname_fallback ... ok
[INFO] [stdout] test format_utils::tests::test_relative_time_seconds ... ok
[INFO] [stdout] test format_utils::tests::test_term_name_triple_letter ... ok
[INFO] [stdout] test format_utils::tests::test_assign_labels_current_first ... ok
[INFO] [stdout] test format_utils::tests::test_term_name_single_letter ... ok
[INFO] [stdout] test format_utils::tests::test_truncate_by_chars_head_tail ... ok
[INFO] [stdout] test format_utils::tests::test_truncate_line_width_short_lines_unchanged ... ok
[INFO] [stdout] test format_utils::tests::test_truncate_line_width_zero_is_noop ... ok
[INFO] [stdout] test format_utils::tests::test_truncate_lines_long ... ok
[INFO] [stdout] test format_utils::tests::test_truncate_lines_by_chars ... ok
[INFO] [stdout] test format_utils::tests::test_truncate_lines_short ... ok
[INFO] [stdout] test format_utils::tests::test_truncate_line_width_long_line_truncated ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_interleaved_by_time ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_output_char_limit ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_plain_text_format ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_empty ... ok
[INFO] [stdout] test recent::tests::test_command_format_with_hostname_and_cwd ... ok
[INFO] [stdout] test recent::tests::test_build_context_splits_history_and_detailed ... ok
[INFO] [stdout] test recent::tests::test_grouped_displays_current_path_at_end ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_no_term_labels ... ok
[INFO] [stdout] test recent::tests::test_build_context_empty ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_custom_output_char_limit ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_current_path_appended ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_history_and_recent_sections ... ok
[INFO] [stdout] test recent::tests::test_format_includes_cwd ... ok
[INFO] [stdout] test recent::tests::test_build_context_strips_command_echo ... ok
[INFO] [stdout] test recent::tests::test_build_context_interleaved ... ok
[INFO] [stdout] test recent::tests::test_grouped_with_hostname ... ok
[INFO] [stdout] test recent::tests::test_history_format_with_hostname_and_cwd ... ok
[INFO] [stdout] test recent::tests::test_build_context_filters_direction ... ok
[INFO] [stdout] test recent::tests::test_build_context_ensures_min_current_session_detailed ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_stable_across_sessions ... ok
[INFO] [stdout] test recent::tests::test_build_context_grouped ... ok
[INFO] [stdout] test recent::tests::test_grouped_empty ... ok
[INFO] [stdout] test recent::tests::test_interleaved_marks_current ... ok
[INFO] [stdout] test recent::tests::test_interleaved_sorted_by_time ... ok
[INFO] [stdout] test recent::tests::test_grouped_multi_session ... ok
[INFO] [stdout] test recent::tests::test_grouped_single_session ... ok
[INFO] [stdout] test recent::tests::test_grouped_with_history ... ok
[INFO] [stdout] test recent::tests::test_select_empty ... ok
[INFO] [stdout] test recent::tests::test_select_max_recent ... ok
[INFO] [stdout] test recent::tests::test_select_min_current_session_commands ... ok
[INFO] [stdout] test recent::tests::test_separator_added_after_command ... ok
[INFO] [stdout] test recent::tests::test_interleaved_empty ... ok
[INFO] [stdout] test recent::tests::test_select_and_split_ensures_min_current_detailed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_daemon-96d6985754f1f8b7)
[INFO] [stdout] 
[INFO] [stdout] running 73 tests
[INFO] [stdout] test conversation_mgr::tests::test_empty_thread_load ... ok
[INFO] [stdout] test conversation_mgr::tests::test_delete_thread_removes_meta ... ok
[INFO] [stdout] test conversation_mgr::tests::test_meta_default_empty ... ok
[INFO] [stdout] test conversation_mgr::tests::test_meta_save_and_load ... ok
[INFO] [stdout] test conversation_mgr::tests::test_create_and_get_latest ... ok
[INFO] [stdout] test conversation_mgr::tests::test_tool_use_messages_preserved ... ok
[INFO] [stdout] test conversation_mgr::tests::test_delete_thread ... ok
[INFO] [stdout] test conversation_mgr::tests::test_load_from_disk_on_startup ... ok
[INFO] [stdout] test conversation_mgr::tests::test_interrupt_stored_as_raw_messages ... ok
[INFO] [stdout] test conversation_mgr::tests::test_append_and_load_raw ... ok
[INFO] [stdout] test formatter_mgr::tests::test_builtin_formatter_default ... ok
[INFO] [stdout] test formatter_mgr::tests::test_builtin_formatter_edit ... ok
[INFO] [stdout] test conversation_mgr::tests::test_get_all_exchanges_with_tool_use ... ok
[INFO] [stdout] test conversation_mgr::tests::test_get_all_exchanges ... ok
[INFO] [stdout] test formatter_mgr::tests::test_unknown_formatter_falls_back_to_default ... ok
[INFO] [stdout] test cleanup::tests::test_create_disk_cleanup_job ... ok
[INFO] [stdout] test conversation_mgr::tests::test_plain_query_stored_without_system_reminder ... ok
[INFO] [stdout] test plugin::tests::test_auto_install_skipped_without_api_key ... ok
[INFO] [stdout] test plugin::tests::test_auto_install_skipped_if_already_exists ... ok
[INFO] [stdout] test plugin::tests::test_no_prompt_json_keeps_original ... ok
[INFO] [stdout] test plugin::tests::test_load_empty_dir ... ok
[INFO] [stdout] test daily_notes::tests::test_generate_daily_note_empty_commands ... ok
[INFO] [stdout] test plugin::tests::test_malformed_json_skipped ... ok
[INFO] [stdout] test plugin::tests::test_merge_precedence ... ok
[INFO] [stdout] test daily_notes::tests::test_generate_daily_note_with_mock_llm ... ok
[INFO] [stdout] test formatter_mgr::tests::test_external_formatter_sequential ... ok
[INFO] [stdout] test plugin::tests::test_auto_install_web_search_when_api_key_present ... ok
[INFO] [stdout] test hourly_summary::tests::test_generate_periodic_summary_empty_commands ... ok
[INFO] [stdout] test plugin::tests::test_prompt_json_description_takes_priority_over_append ... ok
[INFO] [stdout] test daily_notes::tests::test_generate_daily_note_with_commands ... ok
[INFO] [stdout] test plugin::tests::test_register_all_populates_registry ... ok
[INFO] [stdout] test session_mgr::tests::test_cleanup_expired_dirs_edge_cases ... ok
[INFO] [stdout] test session_mgr::tests::test_cleanup_expired_dirs ... ok
[INFO] [stdout] test plugin::tests::test_reload_overrides_picks_up_changes ... ok
[INFO] [stdout] test plugin::tests::test_load_single_plugin ... ok
[INFO] [stdout] test session_mgr::tests::test_format_sessions_list_shows_only_active_with_dead_stats ... ok
[INFO] [stdout] test plugin::tests::test_prompt_json_multiline_description ... ok
[INFO] [stdout] test formatter_mgr::tests::test_external_formatter_echo ... ok
[INFO] [stdout] test plugin::tests::test_duplicate_tool_name_skipped ... ok
[INFO] [stdout] test session_mgr::tests::test_format_sessions_list_demo_output ... ok
[INFO] [stdout] test plugin::tests::test_plugin_executable ... ok
[INFO] [stdout] test plugin::tests::test_prompt_json_replace_description ... ok
[INFO] [stdout] test plugin::tests::test_prompt_json_append_description ... ok
[INFO] [stdout] test thread_summary::tests::test_needs_summary_logic ... ok
[INFO] [stdout] test tool_registry::tests::test_override_updates ... ok
[INFO] [stdout] test tool_registry::tests::test_plugin_type_lookup ... ok
[INFO] [stdout] test tool_registry::tests::test_register_and_lookup_display_name ... ok
[INFO] [stdout] test tool_registry::tests::test_status_text_with_custom_fn ... ok
[INFO] [stdout] test thread_summary::tests::test_skip_empty_threads ... ok
[INFO] [stdout] test tools::command_query::tests::test_register_command_query_tools ... ok
[INFO] [stdout] test session_mgr::tests::test_format_sessions_list_with_multiple_dead_sessions ... ok
[INFO] [stdout] test tools::command_query::tests::test_register_custom_status_text ... ok
[INFO] [stdout] test tool_registry::tests::test_formatter_lookup ... ok
[INFO] [stdout] test session_mgr::tests::test_load_existing_cleans_up_expired_dirs ... ok
[INFO] [stdout] test tool_registry::tests::test_status_text_with_template ... ok
[INFO] [stdout] test session_mgr::tests::test_load_existing_restores_sessions ... ok
[INFO] [stdout] test thread_summary::tests::test_skip_when_no_llm ... ok
[INFO] [stdout] test update_cache::tests::compare_versions_semver ... ok
[INFO] [stdout] test tools::command_query::tests::test_reminder_limits_to_last_n_commands ... ok
[INFO] [stdout] test session_mgr::tests::test_cleanup_expired_dirs_comprehensive ... ok
[INFO] [stdout] test tools::command_query::tests::test_cwd_prefers_live_cwd_over_command_record ... ok
[INFO] [stdout] test tools::command_query::tests::test_cwd_unknown_when_no_commands_and_no_live ... ok
[INFO] [stdout] test tools::command_query::tests::test_failed_command_shows_failed_marker ... ok
[INFO] [stdout] test update_cache::tests::checksum_file ... ok
[INFO] [stdout] test update_cache::tests::check_update_newer ... ok
[INFO] [stdout] test tools::command_query::tests::test_cwd_falls_back_to_last_command_cwd ... ok
[INFO] [stdout] test update_cache::tests::extract_version_invalid ... ok
[INFO] [stdout] test update_cache::tests::extract_version_valid ... ok
[INFO] [stdout] test update_cache::tests::normalize_version_strips_hash ... ok
[INFO] [stdout] test tools::command_query::tests::test_cwd_unknown_when_no_source ... ok
[INFO] [stdout] test tools::command_query::tests::test_reminder_uses_client_platform_info ... ok
[INFO] [stdout] test session_mgr::tests::test_max_context_chars_reduces_commands ... ok
[INFO] [stdout] test tools::command_query::tests::test_reminder_contains_time_and_structure ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 73 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/omnish_daemon-7ba5b7faa7947737)
[INFO] [stdout] 
[INFO] [stdout] running 49 tests
[INFO] [stdout] test config_schema::tests::test_parse_schema ... ok
[INFO] [stdout] test config_schema::tests::test_build_config_items_includes_leaf_items ... ok
[INFO] [stdout] test config_schema::tests::test_resolve_options_from_backends ... ok
[INFO] [stdout] test config_schema::tests::test_resolve_value_nested ... ok
[INFO] [stdout] test config_watcher::tests::test_config_section_hash_eq ... ok
[INFO] [stdout] test config_schema::tests::test_build_config_items_returns_handlers ... ok
[INFO] [stdout] test config_schema::tests::test_build_config_items_generates_existing_backend_items ... ok
[INFO] [stdout] test config_watcher::tests::test_reload_detects_sandbox_change ... ok
[INFO] [stdout] test config_watcher::tests::test_reload_no_change_no_notify ... ok
[INFO] [stdout] test config_schema::tests::test_resolve_value_top_level ... ok
[INFO] [stdout] test config_watcher::tests::test_reload_invalid_toml_keeps_current ... ok
[INFO] [stdout] test sandbox_rules::tests::test_bypass_or_logic_none_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_bypass_empty_rules ... ok
[INFO] [stdout] test sandbox_rules::tests::test_bypass_or_logic_second_matches ... ok
[INFO] [stdout] test sandbox_rules::tests::test_compile_empty_config ... ok
[INFO] [stdout] test file_watcher::tests::test_watch_returns_receiver ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_case_sensitive ... ok
[INFO] [stdout] test sandbox_rules::tests::test_compile_valid_rules ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_equals_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_contains_no_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_equals_no_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_non_string_field ... ok
[INFO] [stdout] test sandbox_rules::tests::test_compile_skips_invalid_rules ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_missing_field ... ok
[INFO] [stdout] test sandbox_rules::tests::test_bypass_or_logic_first_matches ... ok
[INFO] [stdout] test file_watcher::tests::test_multiple_watches ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_starts_with_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_starts_with_no_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_contains_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_contains ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_empty_string ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_equals ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_missing_value ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_starts_with ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_value_with_spaces ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_unknown_operator ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_invalid_regex ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_matches_match ... ok
[INFO] [stdout] test server::tests::test_parse_completion_suggestions_empty ... ok
[INFO] [stdout] test server::tests::test_parse_completion_suggestions_plaintext_fallback ... ok
[INFO] [stdout] test server::tests::test_parse_completion_suggestions_empty_input ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_single_token ... ok
[INFO] [stdout] test sandbox_rules::tests::test_toml_deserialization ... ok
[INFO] [stdout] test sandbox_rules::tests::test_toml_empty_sandbox ... ok
[INFO] [stdout] test server::tests::test_parse_completion_suggestions_string_array ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_matches_no_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_matches ... ok
[INFO] [stderr]      Running tests/daemon_test.rs (/opt/rustwide/target/debug/deps/daemon_test-548bffd48a80d550)
[INFO] [stdout] test server::tests::test_concurrent_completion_requests ... ok
[INFO] [stdout] test server::tests::test_concurrent_completion_requests_different_sessions ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 49 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test test_session_register_with_parent ... ok
[INFO] [stdout] test test_session_end ... ok
[INFO] [stdout] test test_register_idempotent_reuses_existing_session ... ok
[INFO] [stdout] test test_multi_command_session_e2e ... ok
[INFO] [stdout] test test_command_recording_via_receive_command ... ok
[INFO] [stdout] test test_debug_context_request ... ok
[INFO] [stdout] test test_session_register_and_list ... ok
[INFO] [stdout] test test_ended_session_commands_visible_to_new_session_context ... ok
[INFO] [stdout] test test_nested_session_parent_child_relationship ... ok
[INFO] [stdout] test test_interleaved_two_session_context_at_10_and_20_commands ... ok
[INFO] [stdout] test test_commands_persisted_on_session_end ... ok
[INFO] [stderr]      Running tests/smoke_test.rs (/opt/rustwide/target/debug/deps/smoke_test-5e87cc4eca279c96)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr] [2m2026-03-28T01:52:14.757627Z[0m [32m INFO[0m [2momnish_daemon[0m[2m:[0m omnish-daemon 0.8.5-18-g8382017-dirty
[INFO] [stderr] [2m2026-03-28T01:52:14.758053Z[0m [33m WARN[0m [2momnish_daemon[0m[2m:[0m LLM backend not available: no LLM backends could be initialized — check backend_type values in daemon.toml
[INFO] [stderr] [2m2026-03-28T01:52:14.759036Z[0m [32m INFO[0m [2momnish_daemon::conversation_mgr[0m[2m:[0m Loaded 0 conversation threads from disk
[INFO] [stderr] [2m2026-03-28T01:52:14.759765Z[0m [32m INFO[0m [2mtokio_cron_scheduler::job_scheduler[0m[2m:[0m Uninited
[INFO] [stderr] [2m2026-03-28T01:52:14.760242Z[0m [32m INFO[0m [2mtokio_cron_scheduler::job_scheduler[0m[2m:[0m Job creator created
[INFO] [stderr] [2m2026-03-28T01:52:14.760334Z[0m [32m INFO[0m [2momnish_daemon::task_mgr[0m[2m:[0m registered task 'eviction' with schedule '0 0 * * * *'
[INFO] [stderr] [2m2026-03-28T01:52:14.760624Z[0m [32m INFO[0m [2mtokio_cron_scheduler::job_scheduler[0m[2m:[0m Job creator created
[INFO] [stderr] [2m2026-03-28T01:52:14.760702Z[0m [32m INFO[0m [2momnish_daemon::task_mgr[0m[2m:[0m registered task 'periodic_summary' with schedule '0 0 */4 * * *'
[INFO] [stderr] [2m2026-03-28T01:52:14.760736Z[0m [32m INFO[0m [2momnish_daemon[0m[2m:[0m periodic summary enabled (interval=4h)
[INFO] [stderr] [2m2026-03-28T01:52:14.761006Z[0m [32m INFO[0m [2mtokio_cron_scheduler::job_scheduler[0m[2m:[0m Job creator created
[INFO] [stderr] [2m2026-03-28T01:52:14.761092Z[0m [32m INFO[0m [2momnish_daemon::task_mgr[0m[2m:[0m registered task 'disk_cleanup' with schedule '0 0 */6 * * *'
[INFO] [stderr] [2m2026-03-28T01:52:14.761458Z[0m [32m INFO[0m [2mtokio_cron_scheduler::job_scheduler[0m[2m:[0m Job creator created
[INFO] [stderr] [2m2026-03-28T01:52:14.761519Z[0m [32m INFO[0m [2momnish_daemon::task_mgr[0m[2m:[0m registered task 'thread_summary' with schedule '0 */10 * * * *'
[INFO] [stderr] [2m2026-03-28T01:52:14.762857Z[0m [32m INFO[0m [2momnish_daemon[0m[2m:[0m auth token /root/.omnish/auth_token (created)
[INFO] [stderr] [2m2026-03-28T01:52:14.763562Z[0m [32m INFO[0m [2momnish_daemon::plugin[0m[2m:[0m Loaded builtin plugin with 6 tools
[INFO] [stderr] [2m2026-03-28T01:52:14.763653Z[0m [32m INFO[0m [2momnish_daemon::plugin[0m[2m:[0m Reloaded tool overrides (6 tools)
[INFO] [stderr] [2m2026-03-28T01:52:14.764015Z[0m [32m INFO[0m [2momnish_daemon::file_watcher[0m[2m:[0m file watcher started (inotify)
[INFO] [stderr] [2m2026-03-28T01:52:14.764225Z[0m [32m INFO[0m [2momnish_daemon[0m[2m:[0m starting omnishd at /tmp/omnish-test-761.sock
[INFO] [stderr] [2m2026-03-28T01:52:14.764328Z[0m [32m INFO[0m [2momnish_daemon::plugin[0m[2m:[0m watching plugin overrides via shared file watcher: /root/.omnish/plugins
[INFO] [stderr] [2m2026-03-28T01:52:14.764594Z[0m [32m INFO[0m [2momnish_daemon::server[0m[2m:[0m omnishd listening on /tmp/omnish-test-761.sock
[INFO] [stderr] [2m2026-03-28T01:52:14.765943Z[0m [34mDEBUG[0m [2momnish_daemon::server[0m[2m:[0m IoData last 60s: 0 requests, 0 bytes
[INFO] [stdout] test test_omnishd_starts_and_stops ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_llm-a3673b5d5888fcb2)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.51s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 36 tests
[INFO] [stdout] test langfuse::tests::test_truncate_cjk_boundary ... ok
[INFO] [stdout] test langfuse::tests::test_truncate_long ... ok
[INFO] [stdout] test langfuse::tests::test_truncate_short ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_only_thinking_no_content ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_thinking_at_end ... ok
[INFO] [stdout] test factory::tests::test_resolve_api_key_missing ... ok
[INFO] [stdout] test factory::tests::test_create_openai_compat_without_base_url_fails ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_multiple_thinking_blocks ... ok
[INFO] [stdout] test langfuse::tests::test_uuid_v4_format ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_empty_input ... ok
[INFO] [stdout] test openai_compat::tests::test_convert_extra_messages_thinking_blocks ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_empty_think_block ... ok
[INFO] [stdout] test openai_compat::tests::test_convert_extra_messages_no_text_in_tool_use ... ok
[INFO] [stdout] test factory::tests::test_unknown_backend_type ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_without_thinking_tags ... ok
[INFO] [stdout] test openai_compat::tests::test_convert_extra_messages_tool_use ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_starts_with_think_no_newline ... ok
[INFO] [stdout] test prompt::tests::test_from_json_invalid ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_with_thinking_tags ... ok
[INFO] [stdout] test template::tests::test_simple_completion_instructions_before_context ... ok
[INFO] [stdout] test template::tests::test_simple_completion_prefix_stable_across_inputs ... ok
[INFO] [stdout] test template::tests::test_template_by_name_unknown ... ok
[INFO] [stdout] test prompt::tests::test_from_json_preserves_order ... ok
[INFO] [stdout] test prompt::tests::test_merge_replaces_matching ... ok
[INFO] [stdout] test template::tests::test_chat_system_prompt_has_key_sections ... ok
[INFO] [stdout] test template::tests::test_simple_completion_empty_input_instructions_first ... ok
[INFO] [stdout] test prompt::tests::test_add_and_build ... ok
[INFO] [stdout] test prompt::tests::test_merge_appends_new ... ok
[INFO] [stdout] test prompt::tests::test_from_json_lines_array ... ok
[INFO] [stdout] test template::tests::test_template_by_name_returns_some_for_known ... ok
[INFO] [stdout] test prompt::tests::test_from_json_single_string ... ok
[INFO] [stdout] test prompt::tests::test_empty_build ... ok
[INFO] [stdout] test prompt::tests::test_default_chat_contains_all_sections ... ok
[INFO] [stdout] test factory::tests::test_resolve_api_key_with_echo ... ok
[INFO] [stderr]      Running tests/llm_test.rs (/opt/rustwide/target/debug/deps/llm_test-a345f65319a0c9ac)
[INFO] [stdout] test factory::tests::test_create_openai_compat_backend ... ok
[INFO] [stdout] test factory::tests::test_create_anthropic_backend ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test_llm_request_build ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_plugin-903c65a2d9b9aa87)
[INFO] [stdout] 
[INFO] [stdout] running 88 tests
[INFO] [stdout] test formatter::tests::edit_formatter_error_shows_message_and_old_string ... ok
[INFO] [stdout] test formatter::tests::edit_summary_counts_only_changed_lines ... ok
[INFO] [stdout] test formatter::tests::read_formatter_compact_shows_line_count ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_error_no_old_string ... ok
[INFO] [stdout] test formatter::tests::default_formatter_after_success ... ok
[INFO] [stdout] test formatter::tests::write_formatter_empty ... ok
[INFO] [stdout] test formatter::tests::default_formatter_truncates_full_over_50_lines ... ok
[INFO] [stdout] test formatter::tests::write_formatter_line_count ... ok
[INFO] [stdout] test formatter::tests::read_formatter_error ... ok
[INFO] [stdout] test tests::test_build_sandbox_profile_with_cwd_and_same_repo ... ok
[INFO] [stdout] test formatter::tests::write_formatter_single_line ... ok
[INFO] [stdout] test formatter::tests::read_formatter_full_many_lines_shows_summary ... ok
[INFO] [stdout] test tests::test_build_sandbox_profile_minimal ... ok
[INFO] [stdout] test tests::test_escape_sb_path_no_special_chars ... ok
[INFO] [stdout] test tests::test_build_sandbox_profile_with_cwd_and_different_repo ... ok
[INFO] [stdout] test tests::test_escape_sb_path_with_backslash ... ok
[INFO] [stdout] test tests::test_build_sandbox_profile_with_cwd_only ... ok
[INFO] [stdout] test tests::test_escape_sb_path_with_quotes ... ok
[INFO] [stdout] test tests::test_escape_sb_path_backslash_before_quote ... ok
[INFO] [stdout] test tools::bash::tests::test_empty_command ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_numbered_diff ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_substring_replace_all ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_replace_all_multiple ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_multiline_numbered ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_compact_limited_to_50 ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_deletion ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_summary_only_no_snippet ... ok
[INFO] [stdout] test formatter::tests::default_formatter_after_error ... ok
[INFO] [stdout] test tools::edit::tests::test_ambiguous_without_replace_all ... ok
[INFO] [stdout] test tools::bash::tests::test_truncate_output ... ok
[INFO] [stdout] test tools::bash::tests::test_stderr ... ok
[INFO] [stdout] test tools::edit::tests::test_relative_path_rejected ... ok
[INFO] [stdout] test tools::edit::tests::test_deletion_snippet ... ok
[INFO] [stdout] test tools::edit::tests::test_edit_returns_numbered_context_snippet ... ok
[INFO] [stdout] test tools::edit::tests::test_basic_edit ... ok
[INFO] [stdout] test tools::edit::tests::test_not_found ... ok
[INFO] [stdout] test tools::edit::tests::test_empty_old_string ... ok
[INFO] [stdout] test tools::edit::tests::test_same_string_rejected ... ok
[INFO] [stdout] test tools::edit::tests::test_replace_all ... ok
[INFO] [stdout] test tools::edit::tests::test_large_common_suffix_is_truncated ... ok
[INFO] [stdout] test tools::edit::tests::test_snippet_uses_correct_position_when_new_string_appears_earlier ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_no_matches ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_relative_path_from_cwd ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_invalid_pattern ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_with_subdir_path ... ok
[INFO] [stdout] test tools::edit::tests::test_multiline_edit ... ok
[INFO] [stdout] test tools::bash::tests::test_exit_code ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_missing_pattern ... ok
[INFO] [stdout] test tools::edit::tests::test_unchanged_lines_shown_as_context ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_invalid_output_mode ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_basic ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_invalid_regex ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_missing_pattern ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_content_mode ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_default_mode_is_files ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_head_limit ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_case_sensitive_no_match ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_glob_filter ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_count_mode ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_files_with_matches ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_no_matches ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_context_lines ... ok
[INFO] [stdout] test tools::read::tests::test_read_empty_path ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_single_file ... ok
[INFO] [stdout] test tools::read::tests::test_read_empty_file ... ok
[INFO] [stdout] test tools::read::tests::test_read_file ... ok
[INFO] [stdout] test tools::read::tests::test_read_relative_path ... ok
[INFO] [stdout] test tools::read::tests::test_read_nonexistent ... ok
[INFO] [stdout] test tools::read::tests::test_long_line_truncation_multibyte ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_offset ... ok
[INFO] [stdout] test tools::read::tests::test_read_with_limit ... ok
[INFO] [stdout] test tools::write::tests::test_create_parent_dirs ... ok
[INFO] [stdout] test tools::write::tests::test_empty_content ... ok
[INFO] [stdout] test tools::write::tests::test_relative_path_rejected ... ok
[INFO] [stdout] test tools::write::tests::test_overwrite_file ... ok
[INFO] [stdout] test tools::write::tests::test_write_new_file ... ok
[INFO] [stdout] test tools::read::tests::test_read_with_offset ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_type_filter ... ok
[INFO] [stdout] test tools::write::tests::test_empty_path ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_max_results ... ok
[INFO] [stdout] test tools::read::tests::test_long_line_truncation ... ok
[INFO] [stdout] test formatter::tests::default_formatter_truncates_compact_to_5_lines ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_case_insensitive ... ok
[INFO] [stdout] test tools::bash::tests::test_echo ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_multiline ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_sorted_by_mtime ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_regex ... ok
[INFO] [stdout] test tools::bash::tests::test_timeout ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/omnish_plugin-27f932e3d945c970)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 88 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_protocol-8675c229e9ba3ba7)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test message::tests::message_variant_guard ... ok
[INFO] [stdout] test message::tests::test_frame_with_chat_start ... ok
[INFO] [stdout] test message::tests::test_frame_with_completion_response ... ok
[INFO] [stdout] test message::tests::test_frame_round_trip ... ok
[INFO] [stdout] test message::tests::test_frame_with_completion_request ... ok
[INFO] [stdout] test message::tests::completion_summary_extra_round_trips ... ok
[INFO] [stdout] test message::tests::test_frame_with_chat_tool_status ... ok
[INFO] [stdout] test message::tests::test_frame_with_session_update ... ok
[INFO] [stdout] test message::tests::test_frame_with_session_start ... ok
[INFO] [stdout] test message::tests::chat_ready_with_history_round_trips ... ok
[INFO] [stdout] test message::tests::test_frame_with_chat_message ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/message_test.rs (/opt/rustwide/target/debug/deps/message_test-513fe2f4742adde5)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test test_frame_magic_validation ... ok
[INFO] [stdout] test test_session_start_without_parent ... ok
[INFO] [stdout] test test_io_data_roundtrip ... ok
[INFO] [stdout] test test_session_start_roundtrip ... ok
[INFO] [stdout] test test_session_start_with_parent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_pty-672d5ebfbf9bec26)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pty_test.rs (/opt/rustwide/target/debug/deps/pty_test-d244fb5bf7779e63)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test test_pty_spawn_returns_child_pid ... ok
[INFO] [stdout] test test_pty_spawn_and_read_output ... ok
[INFO] [stdout] test test_pty_env_var_propagated ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_store-c6cb4ffd0327885d)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test completion::tests::test_csv_header ... ok
[INFO] [stdout] test sample::tests::test_levenshtein_one_edit ... ok
[INFO] [stdout] test sample::tests::test_levenshtein_identical ... ok
[INFO] [stdout] test sample::tests::test_similarity_completely_different ... ok
[INFO] [stdout] test sample::tests::test_similarity_near_miss ... ok
[INFO] [stdout] test sample::tests::test_similarity_empty ... ok
[INFO] [stdout] test completion::tests::test_csv_format ... ok
[INFO] [stdout] test sample::tests::test_levenshtein_empty ... ok
[INFO] [stdout] test session_update::tests::test_csv_header ... ok
[INFO] [stdout] test session_update::tests::test_csv_format ... ok
[INFO] [stdout] test completion::tests::test_csv_with_comma_in_field ... ok
[INFO] [stdout] test session_update::tests::test_extra_extraction ... ok
[INFO] [stdout] test stream::tests::test_open_append_continues_writing ... ok
[INFO] [stdout] test sample::tests::test_similarity_identical ... ok
[INFO] [stdout] test sample::tests::test_sample_writer ... ok
[INFO] [stdout] test session_update::tests::test_writer_thread ... ok
[INFO] [stdout] test completion::tests::test_writer_thread ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/store_test.rs (/opt/rustwide/target/debug/deps/store_test-7468fc55c0f5b058)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test test_command_record_save_and_load ... ok
[INFO] [stdout] test test_read_range_from_stream ... ok
[INFO] [stdout] test test_stream_writer_and_reader ... ok
[INFO] [stdout] test test_session_meta_with_parent ... ok
[INFO] [stdout] test test_stream_writer_position_tracking ... ok
[INFO] [stdout] test test_write_and_read_session_meta ... ok
[INFO] [stdout] test test_command_record_load_empty ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_tracker-9a9039b37e2f97af)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 55 tests
[INFO] [stdout] test command_tracker::tests::test_esc_skipped_in_extract ... ok
[INFO] [stdout] test command_tracker::tests::test_bug_output_summary_contains_ansi ... ok
[INFO] [stdout] test command_tracker::tests::test_osc133_command_line_from_preexec ... ok
[INFO] [stdout] test command_tracker::tests::test_ctrl_u_clears_line ... ok
[INFO] [stdout] test command_tracker::tests::test_backspace_edits_command_line ... ok
[INFO] [stdout] test command_tracker::tests::test_command_id_sequential ... ok
[INFO] [stdout] test command_tracker::tests::test_osc133_original_input_preferred_over_bash_command ... ok
[INFO] [stdout] test command_tracker::tests::test_cwd_from_osc133_overrides_session_cwd ... ok
[INFO] [stdout] test command_tracker::tests::test_cwd_from_session ... ok
[INFO] [stdout] test osc133_detector::tests::test_command_end_nonzero ... ok
[INFO] [stdout] test osc133_detector::tests::test_command_end_with_exit_code ... ok
[INFO] [stdout] test command_tracker::tests::test_bug_command_line_includes_interactive_keystrokes ... ok
[INFO] [stdout] test osc133_detector::tests::test_embedded_in_output ... ok
[INFO] [stdout] test osc133_detector::tests::test_ignores_other_osc_sequences ... ok
[INFO] [stdout] test osc133_detector::tests::test_multiple_events_in_one_chunk ... ok
[INFO] [stdout] test osc133_detector::tests::test_no_readline ... ok
[INFO] [stdout] test osc133_detector::tests::test_osc133_command_start_plain ... ok
[INFO] [stdout] test osc133_detector::tests::test_osc133_command_start_with_command ... ok
[INFO] [stdout] test command_tracker::tests::test_completion_suffix_included_in_command_line ... ok
[INFO] [stdout] test osc133_detector::tests::test_osc133_command_start_with_original ... ok
[INFO] [stdout] test osc133_detector::tests::test_command_start ... ok
[INFO] [stdout] test osc133_detector::tests::test_command_with_escaped_semicolons ... ok
[INFO] [stdout] test osc133_detector::tests::test_prompt_start ... ok
[INFO] [stdout] test osc133_detector::tests::test_readline_line_empty ... ok
[INFO] [stdout] test osc133_detector::tests::test_readline_line_empty_with_point ... ok
[INFO] [stdout] test command_tracker::tests::test_simple_command_recorded ... ok
[INFO] [stdout] test osc133_detector::tests::test_readline_line_stripped ... ok
[INFO] [stdout] test osc133_detector::tests::test_readline_line_event ... ok
[INFO] [stdout] test osc133_detector::tests::test_readline_line_with_point ... ok
[INFO] [stdout] test osc133_detector::tests::test_readline_line_with_point_mid_cursor ... ok
[INFO] [stdout] test osc133_detector::tests::test_split_unescaped_semicolon ... ok
[INFO] [stdout] test osc133_detector::tests::test_sequence_split_across_chunks ... ok
[INFO] [stdout] test command_tracker::tests::test_bug_output_summary_includes_input_echo ... ok
[INFO] [stdout] test osc133_detector::tests::test_strip_sequences ... ok
[INFO] [stdout] test command_tracker::tests::test_stream_offsets_recorded ... ok
[INFO] [stdout] test command_tracker::tests::test_command_start_without_pending_recovers ... ok
[INFO] [stdout] test command_tracker::tests::test_osc133_nonzero_exit ... ok
[INFO] [stdout] test command_tracker::tests::test_osc133_simple_command ... ok
[INFO] [stdout] test prompt_detector::tests::test_consecutive_prompts ... ok
[INFO] [stdout] test command_tracker::tests::test_osc133_multiple_commands ... ok
[INFO] [stdout] test command_tracker::tests::test_first_prompt_starts_tracking ... ok
[INFO] [stdout] test osc133_detector::tests::test_osc133_command_start_with_cwd ... ok
[INFO] [stdout] test osc133_detector::tests::test_output_start ... ok
[INFO] [stdout] test command_tracker::tests::test_no_command_without_prompt ... ok
[INFO] [stdout] test prompt_detector::tests::test_dollar_in_output_not_false_positive ... ok
[INFO] [stdout] test command_tracker::tests::test_bug_realistic_ls_session ... ok
[INFO] [stdout] test prompt_detector::tests::test_strip_ansi_removes_osc_sequences ... ok
[INFO] [stdout] test prompt_detector::tests::test_detect_dollar_prompt ... ok
[INFO] [stdout] test prompt_detector::tests::test_detect_hash_prompt ... ok
[INFO] [stdout] test prompt_detector::tests::test_prompt_split_across_chunks ... ok
[INFO] [stdout] test prompt_detector::tests::test_custom_pattern ... ok
[INFO] [stdout] test prompt_detector::tests::test_ansi_stripped_before_matching ... ok
[INFO] [stdout] test prompt_detector::tests::test_no_prompt_in_partial_output ... ok
[INFO] [stdout] test command_tracker::tests::test_osc133_suppresses_regex_detection ... ok
[INFO] [stderr]      Running tests/integration_cwd.rs (/opt/rustwide/target/debug/deps/integration_cwd-cf76dc66b4a446d7)
[INFO] [stdout] test command_tracker::tests::test_output_summary_head_tail ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 55 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_transport-619a46894a185db3)
[INFO] [stdout] test test_end_to_end_cwd_tracking ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test rpc_client::tests::test_rpc_client_connect_auto_dispatch ... ok
[INFO] [stdout] test rpc_client::tests::test_rpc_client_call_returns_ack ... ok
[INFO] [stdout] test rpc_client::tests::test_rpc_client_tcp_call_returns_ack ... ok
[INFO] [stdout] test tests::test_parse_tcp_hostname_port ... ok
[INFO] [stdout] test tests::test_parse_tcp_ipv4_port ... ok
[INFO] [stdout] test tests::test_parse_tcp_ipv6_port ... ok
[INFO] [stdout] test tests::test_parse_tcp_prefix ... ok
[INFO] [stdout] test tests::test_parse_tcp_zero_zero_port ... ok
[INFO] [stdout] test tests::test_parse_unix_relative_path ... ok
[INFO] [stdout] test tests::test_parse_unix_absolute_path ... ok
[INFO] [stdout] test tests::test_parse_unix_no_colon ... ok
[INFO] [stdout] test tests::test_parse_tcp_localhost_port ... ok
[INFO] [stdout] test tls::tests::test_make_acceptor ... ok
[INFO] [stdout] test tls::tests::test_load_or_create_cert_generates_and_reloads ... ok
[INFO] [stdout] test tls::tests::test_make_connector ... ok
[INFO] [stdout] test rpc_client::tests::test_rpc_client_tcp_concurrent_calls ... ok
[INFO] [stdout] test rpc_server::tests::test_auth_wrong_token_rejected ... ok
[INFO] [stdout] test rpc_server::tests::test_rpc_server_handles_requests ... ok
[INFO] [stdout] test rpc_server::tests::test_rpc_server_tcp_multiple_clients ... ok
[INFO] [stdout] test rpc_client::tests::test_rpc_client_concurrent_calls ... ok
[INFO] [stdout] test rpc_server::tests::test_auth_required_and_succeeds ... ok
[INFO] [stdout] test rpc_server::tests::test_rpc_server_tcp_handles_requests ... ok
[INFO] [stdout] test rpc_server::tests::test_multiple_clients_concurrent ... ok
[INFO] [stdout] test rpc_client::tests::test_rpc_client_is_connected ... ok
[INFO] [stdout] test rpc_client::tests::test_rpc_client_reconnects_after_server_drop ... ok
[INFO] [stdout] test rpc_server::tests::test_auth_timeout ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.06s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests omnish_common
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests omnish_context
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests omnish_daemon
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests omnish_llm
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests omnish_plugin
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests omnish_protocol
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests omnish_pty
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests omnish_store
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests omnish_tracker
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests omnish_transport
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "dfa7d3b8a8e96b18759b039dc72b6001e1d877536a238792ec2715649ded5a81", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dfa7d3b8a8e96b18759b039dc72b6001e1d877536a238792ec2715649ded5a81", kill_on_drop: false }`
[INFO] [stdout] dfa7d3b8a8e96b18759b039dc72b6001e1d877536a238792ec2715649ded5a81
